function doPost(e) {

    //Identify useful data in JSON
    var myData = JSON.parse(e.postData.contents);
    var reference = myData.case.reference;
    var caseType = myData.case.type.title;
    var status = myData.case.status.title;
    var createdAt = new Date(myData.case.created_at);
    var action = myData.action


    //Put new cases in new row in spreadsheet
    if (action == "case_created") {

        var createdBy = myData.created_by.name; // is not in transition webhook

        var sheet = SpreadsheetApp.getActiveSheet();
        var lastRow = Math.max(sheet.getLastRow(), 1);
        sheet.insertRowAfter(lastRow);
        sheet.getRange(lastRow + 1, 1).setValue(reference); // 1 = Column A
        sheet.getRange(lastRow + 1, 2).setValue(caseType); // 2 = Column B
        sheet.getRange(lastRow + 1, 3).setValue(createdAt); // 3 = Column C
        sheet.getRange(lastRow + 1, 4).setValue(status); // 4 = Column D
        sheet.getRange(lastRow + 1, 5).setValue(createdBy); // 5 = Column E
        sheet.getRange(lastRow + 1, 6).setFormula('=HYPERLINK("https://yoursite.com/q/case/' + reference + '/timeline","Go to case")');
        sheet.getRange(lastRow + 1, 7).setFormula('=VLOOKUP("' + reference + '",Sheet2!A:B,2,false)');

        var cell = sheet.getRange(lastRow + 1, 7).getValue();

        SpreadsheetApp.flush(); // ensure that code above has run

        var url = "https://yoursite.com/api/service-api/yourAPI/case/" + reference + "/edit?key=YourKey";
        var response = UrlFetchApp.fetch(
            url, {
                "method": "patch",
                "contentType": "application/json",
                "payload": JSON.stringify({
                    "message": "" + cell + ""
                })
            }
        ).getContentText();


    }


    //Update row, where case already exists
    if (action == "case_transitioned") {

        //search for existing reference
        var sheet = SpreadsheetApp.getActiveSheet();
        var data = sheet.getDataRange().getValues();
        var name = myData.transitioned_by.name;

        for (var i = 0; i < data.length; i++) {
            if (data[i][0] == reference) { //[0] to search  column A - [1] for Column B etc.
                var row = i + 1;
            }
        }
        sheet.getRange(row, 4).setValue(status);
    }



}